As is known, several types of scanning devices for reading bar codes are presently available. These include slot scanners in extensive use in supermarkets and other type of retail outlets, hand held scanners and light pen scanners. The data from these scanners must be processed to enable the information to be decoded by data processors and other types of equipment.
Bar codes comprise bar and space symbols, with the identification of whether each symbol is a bar or a space and the width of each bar or space (i.e., the interval between a bar-to-space or space-to-bar transition and the next transition) providing the information content of the code, e.g., the alpha/numerics which the code represents.
The printed bar code is first scanned by the beam of a light emitting device, i.e., laser, light emitting diode, etc. The light beam may be swept automatically across the code, as is the case with slot scanners or hand-held scanners or may be manually swept across the code, as is the case with light pens or wands. In either case, the scanning device includes light responsive components, such as photocells , to detect the light beam reflected off of the code. The light responsive means produce electrical signals corresponding to sensed symbols of the code. These signals are then processed and decoded.
Processing the bar code consists essentially of first detecting the occurrence of a bar-to-space transition or a space-to-bar transition, and then determining the interval between the transition and the next transition. A high frequency source is used to generate a series of pulses which are counted, and the total count determines the interval between the transitions (i.e., the width of the bar or space detected by the scanner). The digital counts representing the interval between transitions and the "sign" of the interval (i.e., whether the interval represents a bar or a space symbol) are then sent to a decoding device which converts the information to the original numerical and/or alphabetic representation of the bar code which has been read.
For processing the data from a slot or counter top scanner an internal frequency of forty megahertz (40 MHz) or twenty megahertz (20 MHz) is required. Occasionally a frequency as low as 10 MHz is most efficient. Processing of hand held scanner data is usually performed using frequencies of 5 or 2.5 MHz with 1.25 MHz occasionally used. For a light pen much lower frequencies are employed, ranging from an average of approximately 78 KiloHertz (KHz) down to 9.76 KHz.
Various types of bar codes are presently in use. The most commonly used bar code is the Universal Product Code, referred to as UPC. UPC is a universal code of the strictly numerical type and is in prevalent use for retailing purposes. Other codes include: (1) "EAN" which is the European equivalent of the UPC.; (2) "Code 39" which is an alpha-numeric bar code which is machine readable and is standard with the federal government for warehousing and inventory purposes; (3) The "I 2 of 5" code which is an interleaved numeric code and; (4) "Codabar" which is an early version of a numeric code with a limited number of other symbols, such as dollar sign, dash, etc. used mostly in the photo-processing field and for library codes.
Other codes which are highly specialized and not in prevalant use are the "Code 128" which includes a complete ASCII set and the "Plessey" code , "Code 93", and "Code 11".
As will be appreciated by those skilled in the art, bar code spacing can also vary, depending on the type of material the bar code is placed upon. For example, with a rough material, such as cardboard, the printing of the code is low density, that is, the bars and spaces are relatively wide. Such low density codes tend to decrease the frequency of detection of transitions of the code. For other materials which allow for high resolution or density printing, i.e., bars and spaces which are relatively thin, the detection frequency can be higher. Thus, even with a specific bar code, the spacing between the bars and the spaces can vary considerably, which in turn changes the frequency required to detect and process the code.
Two types of decoders are in prevalent use. One such decoder is a fixed program decoder, such as the National Cash Register integrated circuit decoder chip No. 6-1005415/NCR-8415 used to decode the UPC/EAN bar codes. Another type of decoder is the so-called programmable processor decoder. That type of decoder is programmable so that it can be used to decode the UPC and EAN codes, as well as a wide variety of other codes.
As will be appreciated by those skilled in the art, the fixed program decoder operates considerably faster than the programmable processor decoder. On the other hand, the fixed program decoder, being specifically designed for decoding a specific code, is therefore inflexible, whereas the programmable processor decoder can be programmed to decode a wide variety of codes as well as provide other desirable functions, such as frequency selection and error detection.
Heretofore, previous devices have not been able to operate with all types of scanning devices (such as countertop scanners, hand-held scanners and light pens or wands). Moreover, such devices do not have the flexibility to process bar code data by automatically selecting, from a large number of available frequencies, those digitizer frequencies which are more efficient for the specific information being read. Further still, prior art devices are not suitable for operation with more than one type of decoder (i.e., they cannot operate with both a fixed program (hard-wired) decoder and a programmable processor decoder).